#pragma once
#include<Eigen/Dense>


typedef Eigen::MatrixXd mat;


inline double Relu(const double& temp);

inline double Reluderiv(const double& temp);

mat Relu_mat(const mat& temp);

mat Reluderiv_mat(const mat& temp);


inline double Sigmoid(const double& temp);

inline double Sigmoidderiv(const double& temp);

mat Sigmoid_mat(const mat& temp);

mat Sigmoidderiv_mat(const mat& temp);


inline double Tanh(const double& temp);

inline double Tanhderiv(const double& temp);

mat Tanh_mat(const mat& temp);

mat Tanhderiv_mat(const mat& temp);


mat Softmax(const mat& temp);

mat Softmaxderiv(const mat& one_hot, const mat& pred);